/**
 * 实体查询参数类型
 */
export interface RepoCompQueryParam extends PageQuery {
    scriptId?: string;
    ownerId?: string;
    groupName?: string;
    manufacturer?: string;
    deviceType?: string;
    keyword?: string;
}

/**
 * 实体分页列表项
 */
export interface RepoCompScriptVersionEntity extends Entity {
    manufacturer?: string;
    deviceType?: string;
    author?: string;
    scriptId?: string;
    description?: string;
    operates: RepoCompOperateEntity[];
}

/**
 * 实体分页列表项
 */
export interface RepoCompOperateEntity {
    versionId?: string;
    operateId?: string;
    manufacturer?: string;
    deviceType?: string;
    operateName?: string;
    timeout?: number;
    serviceType?: string;
    operateMode?: string;
    dataType?: string;
    engineParam: ScriptOperateMethod;
    createTime: number;
    updateTime: number;
}

export interface ScriptOperateMethod {
    encode?: ScriptMethod;
    decode?: ScriptMethod;
    include?: ScriptMethod;
}

export interface ScriptMethod {
    main: string;
    code: string;
}

/**
 * 实体分页项类型
 */
export type RepoCompScriptVersionPageResult = PageResult<RepoCompScriptVersionEntity[]>;

/**
 * 创建实体请求VO
 */
export interface CreateRepoCompRequestVO {
    id?: string;
    ownerId?: string;
    groupName?: string;
    manufacturer?: string;
    deviceType?: string;
    description?: string;
    lastVersion?: RepoCompOperateEntity;
    verItem?: RepoCompOperateEntity;
}

